// SqliteManager.cpp
#include "SqliteManager.h"
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>

SqliteManager* SqliteManager::instance = nullptr;

SqliteManager::SqliteManager() {
    // 初始化SQLite连接
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("attend.db"); // 数据库文件路径
    if (!db.open()) {
        qCritical() << "Failed to open database:" << db.lastError().text();
    }
}

SqliteManager* SqliteManager::getInstance() {
    if (!instance) {
        instance = new SqliteManager();
    }
    return instance;
}

SqliteManager::~SqliteManager() {
    if (db.isOpen()) {
        db.close();
    }
}

QSqlQuery SqliteManager::execQuery(const QString& sql) {
    QMutexLocker locker(&mutex);
    QSqlQuery query(db);
    if (!query.exec(sql)) {
        qWarning() << "Query failed:" << query.lastError().text() << "SQL:" << sql;
    }
    return query;
}

bool SqliteManager::execNonQuery(const QString& sql) {
    QMutexLocker locker(&mutex);
    QSqlQuery query(db);
    return query.exec(sql);
}

// 事务操作实现...
